package com.hspedu.file;

import org.junit.jupiter.api.Test;

import java.io.File;
import java.io.FilenameFilter;

/**
 * @author 谷其昊
 * @version 1.0
 * @date 2022/3/8
 * @time 20:43
 */
public class SearchFiles {
    public static void main(String[] args) {
        //getAllPng();
        new SearchFiles().fidAllPng("D:\\BaiduNetdiskDownload\\韩顺平2021基础学Java\\资料\\分享资料");
    }

    @Test
    public static void getAllPng(){
         //1. 尝试列出当前文件夹的所有文件
        String path = "D:\\BaiduNetdiskDownload\\韩顺平2021基础学Java\\资料\\分享资料";
        File file = new File(path);

        //2. 过滤
        File[] files = file.listFiles(new FilenameFilter() {
            //dir 是父目录
            @Override
            public boolean accept(File dir, String name) {
                //只剩下文件夹和png 根据父目录和自身名字创建一个新的文件
                return new File(dir,name).isDirectory() || name.contains(".png");
            }
        });
        if (files == null || files.length == 0){
            return;
        }

        //3. 遍历，检查是否是文件夹
        for (File parentFile : files) {
            if (parentFile.isDirectory()){
                //递归
            }else{
                //打印所有的图片
                System.out.println(parentFile.getName());
            }
        }


    }

    public void fidAllPng(String path){
        //1. 尝试列出当前文件夹的所有文件
        File file = new File(path);

        //2. 过滤
        File[] files = file.listFiles(new FilenameFilter() {
            //dir 是父目录
            @Override
            public boolean accept(File dir, String name) {
                //只剩下文件夹和png 根据父目录和自身名字创建一个新的文件
                return new File(dir,name).isDirectory() || name.contains(".png");
            }
        });
        if (files == null || files.length == 0){
            return;
        }

        //3. 遍历，检查是否是文件夹
        for (File parentFile : files) {
            if (parentFile.isDirectory()){
                //递归
                fidAllPng(parentFile.getAbsolutePath());
            }else{
                //打印所有的图片
                System.out.println(parentFile.getName());
            }
        }
    }


}
